const webpack = require('webpack')
const path = require("path");
const IS_PROD = ["production", "prod"].includes(process.env.NODE_ENV);
const resolve = dir => path.join(__dirname, dir);
module.exports = {
  // 选项
  //基本路径
  publicPath: process.env.NODE_ENV === "production" ? "./" : "/", // 公共路径
  //构建时的输出目录
  outputDir: process.env.outputDir || "dist", // 'dist', 生产环境构建文件的目录
  //放置静态资源的目录
  assetsDir: "static",
  //html 的输出路径
  indexPath: "index.html",
  devServer: {
    open: false, //编译完成时是否打开网页
    host: "0.0.0.0", //172.168.80.75
    port: 3031,
    https: false, //编译失败时刷新页面
    hotOnly: true, // 热更新
    proxy: {
      "/api": {
        target: "http://127.0.0.1:3032/", //接口域名
        changeOrigin: true, //是否跨域
        ws: true, //是否代理 websockets
        secure: true, //是否https接口
        pathRewrite: {
          //路径重置
          "^/api": ""
        }
      }
    }
  },

  configureWebpack: {
    plugins: [

      new webpack.ProvidePlugin({
        $:"jquery",

        jQuery:"jquery",

        "windows.jQuery":"jquery"

      })

    ]

  },

  chainWebpack(config) {
    // 配置 px2rem-loader 自动将 px 转换成 rem
    // config.module
    //   .rule("scss")
    //   .oneOf("vue")
    //   .use("px2rem-loader")
    //   .loader("px2rem-loader")
    //   .before("sass-loader") // this makes it work.
    //   .options({ remUnit: 75, remPrecision: 8 })
    //   .end();

    // 把 packages 和 src 加入编译，因为新增的文件默认是不被 webpack 处理的
    config.module
      .rule("js")
      .include.add(/packages/)
      .end()
      .include.add(/src/)
      .end()
      .use("babel")
      .loader("babel-loader")
      .tap(options => {
        // 修改它的选项...
        return options;
      });
  },

  // 配置 sass 全局变量
  pluginOptions: {
    "style-resources-loader": {
      preProcessor: "scss",
      patterns: [
        // 文件路径根据实际情况编写
        path.resolve(__dirname, "./src/assets/styles/*.scss")
      ]
    }
  },
  css: {
    loaderOptions: {
      scss: {
        // 文件路径根据实际情况编写
        prependData: `@import "@/assets/styles/_variable.scss"; @import "@/assets/styles/common.scss";`
      }
    }
  }
};
